/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Threads;

import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import matlabcontrol.MatlabConnectionException;
import matlabcontrol.MatlabInvocationException;
import MatLab.MatLabComparacion;

/**
 *
 * @author Nico 
 * Clase HiloMatlab, esta clase crea el hilo que llevara a cabo la
 * ejecucion de los computos en MatLab.
 */
public class HiloMatlab2 extends Thread {

    private String ruta;
    private String nombreArchivo;
    javax.swing.JFrame padre;
    int aux;
    public HiloEspera hilo;

    public HiloMatlab2(String str, String ruta, String nombreArchivo, javax.swing.JFrame padre, int i, HiloEspera hilo) {
        super(str);
        this.ruta = ruta;
        this.nombreArchivo = nombreArchivo;
        this.padre = padre;
        this.aux = i;
        this.hilo = hilo;
    }

    /**
     * Funcion personalizada de run() donde se ejecutan los codigos de MatLab
     * correspondientes a la creacion de matrices para luego realizar la
     * comparacion de la emitida por el Planificacion, y la creada por el
     * Sistema de Verificacion. La cual, al finalizar, llama a la funcion
     * "stopThis()" del hilo de espera correspondiente.
     */
    public void run() {
        MatLabComparacion mat = new MatLabComparacion();

        if (aux == 0) {
            try {
                mat.usarMatlab(ruta, nombreArchivo, padre);
            } catch (MatlabConnectionException ex) {
                hilo.stopThis();
                JOptionPane.showMessageDialog(padre, "Error de conexión con Matlab");
            } catch (MatlabInvocationException ex) {
                hilo.stopThis();
                JOptionPane.showMessageDialog(padre, "Error en la llamada a Matlab");
            }
        } else {
            try {
                mat.usarMatlab2(ruta, nombreArchivo, padre);
                hilo.stopThis();
            } catch (MatlabConnectionException ex) {
                hilo.stopThis();
                JOptionPane.showMessageDialog(padre, "Error de conexión con Matlab");
            } catch (MatlabInvocationException ex) {
                hilo.stopThis();
                JOptionPane.showMessageDialog(padre, "Error en la llamada a Matlab");
           }

        }
    }
}
